import 'package:flutter/material.dart';
import 'package:flutter/foundation.dart';
import 'package:get/get.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';

// 导入路由配置
import 'common/routers/pages.dart';
import 'common/routers/names.dart';
// 导入服务定位器
import 'common/services/service_locator.dart';

void main() async {
  // 确保Flutter绑定初始化
  WidgetsFlutterBinding.ensureInitialized();
  
  try {
    // 使用服务定位器初始化所有服务
    await ServiceLocator.init();
    
  } catch (e) {
    debugPrint('❌ 应用初始化失败: $e');
    debugPrint('💡 将使用默认配置启动应用');
    // 如果初始化失败，可以继续运行应用，但功能可能受限
  }
  
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    // 使用 ScreenUtilInit 包裹整个应用进行屏幕适配
    return ScreenUtilInit(
      // 设计稿的尺寸（单位是 px）- 基于iPhone 12 Pro的设计尺寸
      designSize: const Size(390, 844),
      // 是否根据屏幕宽度自适应文本
      minTextAdapt: true,
      // 支持分屏模式
      splitScreenMode: true,
      // 构建器
      builder: (context, child) {
        return GetMaterialApp(
          title: '海隆设备租赁',
          // 去掉debug标识
          debugShowCheckedModeBanner: false,
          theme: ThemeData(
            colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
            useMaterial3: true,
            // 设置全局文本主题，使用屏幕适配
            textTheme: Theme.of(context).textTheme.apply(
              fontSizeFactor: 1.0.sp,
            ),
          ),
          // 设置初始路由为主页面
          initialRoute: RouteNames.systemMain,
          // 配置GetX路由
          getPages: RoutePages.list,
        );
      },
    );
  }
}
      
